home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_1 / manual.pro < prev    next >
Text File  |  1995-03-23  |  3KB  |  127 lines

  1. @The programs in Chapter 31 of the HP48SX Owner's Manual
  2. @are presented below in ascii down-loadable form.
  3. @
  4. @Jim Donnelly
  5. @Hewlett-Packard
  6. @jimd@cv.hp.com
  7. @
  8. @ Just download this whole file to create a directory.
  9.  
  10. DIR
  11.  
  12. FIB1
  13. \<< \-> n 'IFTE(n\<=1,n,FIB1(n-1)+FIB1(n-2))' \>>
  14.  
  15. FIB2
  16. \<< \-> n
  17. \<<
  18.   IF n 1 \<= THEN n ELSE 0 1 2 n START DUP ROT + NEXT SWAP DROP END
  19. \>>
  20. \>>
  21.  
  22. FIBT
  23. \<<
  24. DUP TICKS SWAP FIB1 SWAP TICKS SWAP - B\->R
  25. 8192 / "FIB1 TIME" \->TAG ROT TICKS SWAP FIB2 TICKS SWAP
  26. DROP SWAP - B\->R 8192 / "FIB2 TIME" \->TAG
  27. \>>
  28.  
  29. PAD
  30. \<<
  31. \->STR WHILE DUP SIZE 22 < REPEAT " " SWAP + END
  32. \>>
  33.  
  34. PRESERVE
  35. \<< RCLF \-> f
  36. \<< EVAL f STOF \>>
  37. \>>
  38.  
  39. BDISP
  40. \<< \<< DUP -55 CF IFERR R\->B THEN END \-> n
  41. \<< CLLCD \<< BIN \>> \<< OCT \>> \<< DEC \>> \<< HEX \>>
  42. 1 4 FOR j EVAL n \->STR PAD j DISP NEXT \>> 3 FREEZE \>> PRESERVE \>>
  43.  
  44. SORT
  45. \<< DUP SIZE 1 - 1 FOR j 1 j FOR k k GETI \-> n1
  46. \<< GETI \-> n2
  47. \<< DROP IF n1 n2 > THEN k n2 PUTI n1 PUT END \>> \>> NEXT -1 STEP \>>
  48.  
  49. LMED
  50. \<< DUP SIZE 1 + 2 / \-> p \<< DUP p FLOOR GET SWAP p CEIL
  51. GET + 2 / \>> \>>
  52.  
  53. MEDIAN
  54. \<< RCL\GS DUP SIZE OBJ\-> DROP \-> n m
  55. \<< '\GSDAT' TRN 1 m FOR j \GS- OBJ\-> DROP
  56. n \->LIST SORT LMED j ROLLD NEXT m \->ARRY \>> SWAP STO\GS \>>
  57.  
  58. MULTI
  59. \<< \-> p \<< DO DUP p EVAL DUP ROT UNTIL SAME END \>> \>>
  60.  
  61. EXCO
  62. \<< \<< EXPAN \>> MULTI \<< COLCT \>> MULTI \>>
  63.  
  64. MNX
  65. \<< { { "MAX" \<< 10 SF CONT \>> }
  66. { "MIN" \<< 10 CF CONT \>> } }
  67. TMENU "Sort for MAX or MIN?"
  68. PROMPT 1 GETI DO ROT ROT GETI 4 ROLL DUP2 IF > 10 FS? XOR THEN
  69. SWAP END DROP UNTIL -64 FS? END SWAP DROP 0 MENU \>>
  70.  
  71. MNX2
  72. \<< { { "MAX" \<< 10 SF CONT \>> } { "MIN" \<< 10 CF CONT \>> } }
  73. TMENU "Sort for MAX or MIN?" PROMPT DUP OBJ\-> 1 SWAP OBJ\->
  74. DROP * 1 - FOR n DUP2 IF > 10 FS? XOR THEN SWAP END DROP NEXT 0 MENU \>>
  75.  
  76. NAMES
  77. \<< IF OBJ\-> DUP 2 SAME THEN DROP IF TYPE 6 SAME SWAP TYPE 6 SAME
  78. AND NOT THEN "List needs two names" DOERR END ELSE DROPN
  79. "Illegal list size" DOERR END \>>
  80.  
  81. VFY
  82. \<< DUP DTAG \-> arg \<< CASE arg TYPE 5 SAME THEN arg NAMES END
  83. arg TYPE 6 SAME NOT THEN "Not name or list" DOERR END END \>> \>>
  84.  
  85. BER
  86. \<< \-> x \<< 1 2 9.E499 FOR j DUP
  87. '(-1)^(j/2)*(x/2)^(2*j)/SQ(j!)' EVAL + IF DUP ROT \=/ THEN 2 ELSE 9.1E499 END
  88. STEP \>> \>>
  89.  
  90. SINTP
  91. \<< 'X' PURGE 'SIN(X)' STEQ -2 2 YRNG ERASE DRAW
  92. PICT RCL 'SINT' STO \>>
  93.  
  94. SETTS
  95. \<< SINTP 17 1 FOR x x 'X' DUP SIN SWAP ROT TAYLR STEQ ERASE DRAW
  96. PICT RCL SINT + -2 STEP SINT 10 \->LIST 'TSL' STO \>>
  97.  
  98. TSA
  99. \<< TSL OBJ\-> 1 SWAP FOR s ERASE \->LCD 1 WAIT NEXT \>>
  100.  
  101. PIE
  102. \<< RCLF \-> flags \<< RAD { { "SLICE" \GS+ } { }
  103. { "CLEAR" CL\GS } { } { } { "DRAW" CONT } } TMENU
  104. "Key values into SLICE,
  105. DRAW restarts program."
  106. PROMPT ERASE 1 131 XRNG 1 64 YRNG CLLCD
  107. "Please wait.....
  108. Drawing Pie Chart"
  109. 1 DISP (66,32) 20 0 6.28 ARC PICT RCL \->LCD RCL\GS TOT / DUP
  110. 100 * \-> prcnts \<< 2 \pi \->NUM * * 0 \-> prop angle
  111.       \<< prop SIZE OBJ\-> DROP SWAP FOR x
  112. (66,32) prop x GET 'angle' STO+ angle COS LASTARG SIN R\->C
  113. 20 * OVER + LINE PICT RCL angle prop x GET 2 / - DUP COS
  114. LASTARG SIN R\->C 26 * (66,32) + SWAP DUP CASE 1.5 \<= THEN DROP END DUP
  115. 4.4 \<= THEN DROP 15 - END 5 < THEN (3,2) + END END
  116. prcnts x GET 1 RND \->STR "%" + 1 \->GROB GOR DUP PICT STO
  117. \->LCD NEXT { } PVIEW \>> \>> flags STOF \>> 2 MENU \>>
  118.  
  119. WALK
  120. \<< GROB 9 15 E300140015001C001400E3008000C110AA00940090004100220014102800
  121. \-> man \<<
  122. ERASE { # 0d # 0d } PVIEW { # 0d # 25d } PICT OVER man GXOR 5 MAXR
  123. FOR i i 131 MOD R\->B # 25d 2 \->LIST PICT OVER man GXOR
  124. PICT ROT man GXOR 5 STEP \>> \>>
  125.  
  126. END
  127.